package com.dys.test08;

import java.util.Scanner;

/**
 * @className: com.dys.test08.ThrowsTest
 * @description: com.dys.test08
 * @author: pine cone
 * @version: v1.0.0
 * @createTime: 2024/07/23 下午8:59
 */
public class ThrowsTest {
    /**
     * 这是一个main()方法,是应用程序的入口
     *
     * @param args 方法的形参列表,是一个字符串数组,包含了从命令行传递给程序的参数
     */
    public static void main(String[] args) throws Exception {
        // try catch是主动解决异常
        // try {
        //     testException3();
        // } catch (Exception e) {
        //     throw new RuntimeException(e);
        // }

        // 2.往外抛
        testException3();
    }

    /**
     * 制造运行时异常
     */
    public static void testException() {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入第一个数: ");
        int num1 = sc.nextInt();
        System.out.println("请输入第二个数: ");
        int num2 = sc.nextInt();
        if (num2 == 0) {
            // throw是主动制造异常
            throw new RuntimeException("除数不能为0");
        } else {
            System.out.println("商为: " + num1 / num2);
        }
    }

    /**
     * 制造检查异常
     */
    public static void testException2() {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入第一个数: ");
        int num1 = sc.nextInt();
        System.out.println("请输入第二个数: ");
        int num2 = sc.nextInt();
        if (num2 == 0) { // 除数为0，制造异常
            // 对于检查异常，必须使用 try-catch 块捕获并处理
            try {
                throw new Exception();
            } catch (Exception e) {
                e.printStackTrace();
            }
        } else {
            System.out.println("商为: " + num1 / num2);
        }
    }

    /**
     * 往外抛
     */
    public static void testException3() throws Exception {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入第一个数: ");
        int num1 = sc.nextInt();
        System.out.println("请输入第二个数: ");
        int num2 = sc.nextInt();
        if (num2 == 0) { // 除数为0，制造异常
            throw new Exception();
        } else {
            System.out.println("商为: " + num1 / num2);
        }
    }
}
